package com.example.interviewer.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.baomidou.mybatisplus.annotation.TableField;
//import com.ruoyi.common.annotation.Excel;

/**
 * 数字人面试官配置对象 digital_interviewers
 *
 * @author ruoyi
 * @date 2025-04-06
 */
@Data
public class DigitalInterviewers
{
    /** 数字人唯一ID */
    private Long id;

    /** 数字人名称 */
    private String name;

    /** 角色定位 */
    private String role;

    /** 联系邮箱 */
    private String email;

    /** 专业领域(岗位/职位) */
    private String expertise;

    /** 技能标签(逗号分隔) */
    private String skills;

    /** 使用状态（0活跃 1不活跃） */
    private Long status;

    /** 备注信息 */
    private String notes;

    /** 头像URL */
    private String avatar;

    /** 数字人视频存储路径 */
    private String videoPath;

    /** 性格特质 */
    private String personality;

    /** 提示词模板 */
    private String promptTemplate;

    /** 生成温度(0-1) */
    private BigDecimal temperature;

    /** 头像路径 */
    private String avatarPath;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updatedAt;

    /** 已完成面试数 */
    @TableField(exist = false)
    private Integer completedInterviews;

    /** 通过面试数 */
    @TableField(exist = false)
    private Integer passedInterviews;

    /** 未通过面试数 */
    @TableField(exist = false)
    private Integer failedInterviews;

    /** 待面试数 */
    @TableField(exist = false)
    private Integer pendingInterviews;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setRole(String role)
    {
        this.role = role;
    }

    public String getRole()
    {
        return role;
    }
    public void setEmail(String email)
    {
        this.email = email;
    }

    public String getEmail()
    {
        return email;
    }
    public void setExpertise(String expertise)
    {
        this.expertise = expertise;
    }

    public String getExpertise()
    {
        return expertise;
    }
    public void setSkills(String skills)
    {
        this.skills = skills;
    }

    public String getSkills()
    {
        return skills;
    }
    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }
    public void setNotes(String notes)
    {
        this.notes = notes;
    }

    public String getNotes()
    {
        return notes;
    }
    public void setAvatar(String avatar)
    {
        this.avatar = avatar;
    }

    public String getAvatar()
    {
        return avatar;
    }
    public void setVideoPath(String videoPath)
    {
        this.videoPath = videoPath;
    }

    public String getVideoPath()
    {
        return videoPath;
    }
    public void setPersonality(String personality)
    {
        this.personality = personality;
    }

    public String getPersonality()
    {
        return personality;
    }
    public void setPromptTemplate(String promptTemplate)
    {
        this.promptTemplate = promptTemplate;
    }

    public String getPromptTemplate()
    {
        return promptTemplate;
    }
    public void setTemperature(BigDecimal temperature)
    {
        this.temperature = temperature;
    }

    public BigDecimal getTemperature()
    {
        return temperature;
    }
    public void setCreatedAt(Date createdAt)
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt()
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt)
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt()
    {
        return updatedAt;
    }

    public void setCompletedInterviews(Integer completedInterviews) 
    {
        this.completedInterviews = completedInterviews;
    }

    public Integer getCompletedInterviews() 
    {
        return completedInterviews;
    }

    public void setPassedInterviews(Integer passedInterviews) 
    {
        this.passedInterviews = passedInterviews;
    }

    public Integer getPassedInterviews() 
    {
        return passedInterviews;
    }

    public void setFailedInterviews(Integer failedInterviews) 
    {
        this.failedInterviews = failedInterviews;
    }

    public Integer getFailedInterviews() 
    {
        return failedInterviews;
    }

    public void setPendingInterviews(Integer pendingInterviews) 
    {
        this.pendingInterviews = pendingInterviews;
    }

    public Integer getPendingInterviews() 
    {
        return pendingInterviews;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("role", getRole())
                .append("email", getEmail())
                .append("expertise", getExpertise())
                .append("skills", getSkills())
                .append("status", getStatus())
                .append("notes", getNotes())
                .append("avatar", getAvatar())
                .append("videoPath", getVideoPath())
                .append("personality", getPersonality())
                .append("promptTemplate", getPromptTemplate())
                .append("temperature", getTemperature())
                .append("createdAt", getCreatedAt())
                .append("updatedAt", getUpdatedAt())
                .toString();
    }
}
